草庐IT

MySQL SELECT 增量计数器

全部标签

mysql - 为什么 INNODB 批量插入会导致自动增量主键跳过值?

我很熟悉InnoDB中失败的插入会导致自动递增的主键出现间隙这一事实,我认为这无关紧要(对我来说并不明显)。我遇到的问题是,我将5条记录插入到具有自动递增主键的表中,这导致主键的间隙从5到8。这是一个重复该问题的脚本。DROPTABLEIFEXISTS`test_table`;CREATETABLE`test_table`(`A`int(10)unsignedNOTNULLAUTO_INCREMENT,`B`int(10)unsignedNOTNULL,PRIMARYKEY(`A`))ENGINE=INNODBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;in

mysql - 删除自动增量中的间隙

假设我有一个带有自动递增id字段的MySQL表,然后我插入3行。然后,我删除第二行。现在表的id变为1,3。我可以让MySQL更正它并使其成为1,2而无需编写程序来这样做吗? 最佳答案 MySQL不会让您在创建自动索引列后更改其索引。我所做的是删除Auto-Index列,然后添加一个新的同名列,mysql将索引新生成的列,没有间隙。仅在自动索引与其余数据不相关而仅用作更新和删除引用的表上执行此操作。例如,我最近对一个包含谚语的表做了这个,其中自动索引列仅在我更新或删除谚语时使用,但我需要自动索引是连续的,因为谚语是通过随机抽取的介于

mysql - 获取具有计数的不同记录

我有一个包含personid和msg列的表。personid,msg--------------1,'msg1'2,'msg2'2,'msg3'3,'msg4'1,'msg2'我想获得每个personid的总msg。我正在尝试这个查询:selectdistinctpersonid,count(*)FROMmytable;我也试过这个查询selectdistinctpersonid,count(msg)FROMmytable;但没有得到实际结果。我想要上述数据的结果:id,count--------1,22,23,1 最佳答案 您只需

php - 具有多个计数的 MySQL 数据透视表

这是我的MySQL表的快照:是否可以编写一个查询来获得像输出这样的数据透视表... 最佳答案 怎么样SELECTurl_host,SUM(CASEWHENpost_id=-1THEN1ELSE0END)aspost_id_minus1,SUM(CASEWHENpost_id=0THEN1ELSE0END)aspost_id_0,etc...FROMYOUR_TABLEGROUPBYurl_host 关于php-具有多个计数的MySQL数据透视表,我们在StackOverflow上找到一个

mysql - 我如何加入两个计数的总和?

我目前有一个比赛结果表+----------+----------+--------+-----------+--------+-----------+-----------+-----------+|hometeam|awayteam|p1home|p2home...|p1away|p2away...|homescore|awayscore|+----------+----------+--------+-----------+--------+-----------+-----------+-----------+我用相当笨重的查询SELECT(SELECTCOUNT(homete

php - 为什么MySQL从1开始计数而不是0?

数组的第一个元素(在大多数编程语言中)的id(索引)为0。MySQL表的第一个元素(行)的(自动递增)id为1。后者似乎是个异常(exception)。 最佳答案 更好的问题是“为什么数组是零索引的?”原因与指针运算有关。数组的索引是相对于指针地址的偏移量。在C++中,给定数组charx[5],表达式x[1]和*(x+1)是等价的,假定sizeof(char)==1。因此从1开始的自动递增字段是有意义的。数组和这些字段之间没有真正的关联。 关于php-为什么MySQL从1开始计数而不是0

mysql - Laravel 和使用 Eloquent 的多计数查询

我正在尝试优化我在过去7天内生成统计信息的代码。目前我正在使用eloquent&查询计数来记录每天的数据,这导致我在一个循环中进行7个单独的查询。例子://loopfornumberofdaysfor($i=0;$i',$oldest)->where('objecttime','count();//morelogictosetcomparitiveunixtimes$newest=$newest-$dayDuration;}我知道可以使用与描述相似的语法在sql中对查询进行分组here;我想知道的是,是否可以在Laravel中使用eloquent/fluent来做同样的事情,还是只能使

mysql - 如何获取字段中所有元素的计数?

我有一张table:id|name|-----------1|AAA|2|BBB|3|AAA|4|DDD|5|BBB|6|CCC|7|AAA|8|BBB|9|DDD|我想计算AAA、BBB等有多少次。通过使用count(*)我得到的孔数不是针对单个元素的。我想要所有元素的计数。像这样:Name|Count------------AAA|3BBB|3CCC|1DDD|2不在新表中,我希望它作为输出。 最佳答案 使用COUNT()聚合函数获取每个NAME的记录总数。SELECTname,COUNT(*)totalCOUNTFROMtab

mysql - 按计数分组可能吗?

我有2个表:1.customer(containscustomers)2.customer_order(containsorders)我想知道这个:no.ofcustomerswith0ordersno.ofcustomerswith1orderno.ofcustomerswith2ordersetc我有这个:SELECTCOUNT(co.id)FROMcustomercLEFTJOINcustomer_ordercoONc.id=co.id_customerGROUPBY???; 最佳答案 这给出了每个客户的订单量SELECTco

php - 自动增量与唯一键的区别当你把它们都放在一张表中时?

如果我在查询时没有在任何地方使用它,那么在表中自动递增主键有什么用。例如我有一个表格,用户可以在其中注册自己的userid/passwd等,并且表格如下所示。usertableidintautoincrementprimarykeyuseriduniquekeypasswdvarcharetcetc每当我检查登录用户或任何其他查询时,我总是使用select*fromtbnamewhereuserid=?我有一个唯一索引,那么在id列上使用主索引有什么用?速度也会有差异吗?编辑:我的userid实际上是一个用户名选择我注册的用户。我已经在mysql和sqlserver下标记了这个问题,因